﻿namespace Editor.Gmx.AutoGroup
{
    using UnityEngine;

    public enum FoldoutColorMode
    {
        Always,
        OnExpanded,
        OnCollapsed
    }

    public enum FoldoutColorSelector
    {
        All,
        Header
    }

    public partial class FoldoutColorGroupAttribute
    {
        public Color Color { get; set; }

        public FoldoutColorMode ColorMode { get; set; }

        public FoldoutColorSelector ColorSelector { get; set; }

        public bool Expanded { get; set; }

        public bool BoldLabel { get; set; }

        public int PaddingTop { get; set; }

        public int PaddingBottom { get; set; }

        public int MarginTop { get; set; }

        public int MarginBottom { get; set; }
    }
}

namespace Editor.Gmx.AutoGroup
{
    using System;
    using UnityEngine;

    partial class FoldoutColorGroupAttribute : Attribute
    {
        public string Group { get; set; }

        public string LabelText { get; set; }

        public bool ShowLabel { get; set; }

        public float Order { get; set; }

        public FoldoutColorGroupAttribute(
            string group,
            string label = "",
            float r = 1f, float g = 1f, float b = 1f,
            bool expanded = false,
            bool showLabel = true,
            bool boldLabel = false,
            float order = 0f)
        {
            Group = group;
            Color = new Color(r, g, b, 1f);
            LabelText = label;
            Expanded = expanded;
            ShowLabel = showLabel;
            Order = order;
            BoldLabel = boldLabel;
        }
    }
}